(首先,我要正式宣布:RAG 篇休刊,開新坑,MCP 篇開始)
過去在做 Function Calling 的時候,我一直在想:如果我要讓 Agent 查天氣,我要寫一段程式;如果我要讓她去讀 Google 日曆,我又得寫一段程式。
這就像是遊戲裡某個角色的獨門絕技,只有他能用,換成其他人(別的模型或別的專案)都用不了,完全是專屬硬編碼(Hard-coding)。
而 MCP (Model Context Protocol),概念完全不一樣!它比較像是 遊戲主機的卡帶插槽。只要主機有這個卡帶槽(支援 MCP 協定),不管插進去的是哪一款遊戲,主機都能直接讀取來玩,不用為了每一款遊戲去重新改造主機板。
今天停下來把這兩者的本質釐清,才不會在後續開發「外掛手套」時走錯方向。
今天的輕量目標:
「Function Calling 是讓模型能以結構化方式請求外部函式/工具的一種能力。」
get_weather(),然後在給 Gemini 的 Prompt 裡寫清楚它的名字與參數格式。Gemini 看懂後,回傳一串 JSON 說:「請幫我執行 get_weather(location='Taipei')」。MCP 不是某個模型的專屬功能,而是一種跨系統的「通訊標準 (Protocol)」。
def get_weather()。